<?php namespace Admin\Controller; 
//商品表
use Common\Model\Shop;
//类型属性表
use Common\Model\Attribute;
//分类表
use Common\Model\Category;
//品牌表
use Common\Model\Brand;
//商品属性表
use Common\Model\Shop_attribute;
//商品详细表
use Common\Model\Shop_detailed;
//商品默认控制器
class ShopController extends CommonController{
//	私有属性
	private $model;
	//框架自动执行函数
	public function __auto(){
//		实例化模型类
		$this->model = new Shop;
	}
	//商品列表
	public function index(){
//		获取模型类指定的表的所有数据按升序排列是二位数组
		$data = $this->model->get();
		//如果没有一个分类，那么先去添加

		if(!$data){
			View::success('请先去添加商品',U('add'));
		}
		
		//分配变量
		View::with('data',$data);
		//显示模板
	    View::make();
	}
	public function add(){
		
		if(IS_POST){
//			$data=$_POST['name'];
			$data=Q('post.sname');
//			p($data);exit;
			$oldData=$this->model->where("sname='{$data}'")->find();
			if($oldData){
				View::success("商品已存在");
			}	

			if($this->model->store()){
				View::success('添加成功',U('index'));
			}
			View::error($this->model->getError());
		}
		$brandModel=new \Common\Model\Brand;
		$brandDate=$brandModel->get();
		$CategoryModel=new \Common\Model\Category;
		$CategoryData=$CategoryModel->get();
		$CategoryData= Data::tree($CategoryData,'cname','cid','pid');

		View::with('brandDate',$brandDate);
		View::with('CategoryData',$CategoryData);
		View::make();
	}
	
//	public function show(){
//		$cid=Q("post.cid");
//
//		$data=$this->model->where("sid={$cid}")->find();
//		$type_tid=$data['type_tid'];
//		$AttributeModel=new \Common\Model\Attribute;
//		$attributeData=$AttributeModel->where("is_recycle=1")->get();
//		echo json_encode($attributeData);
//	}
	/**
	 * 获得类型属性
	 */
	public function getAttr(){
		//得到类型id
		$type_tid = Q('post.t',0,'intval');
		//通过类型id找到类型属性
		$AttributeModel = new Attribute;
		$data = $AttributeModel->where("type_tid={$type_tid}")->get();
//		p($data);
		foreach ($data as $k => $v) {
			//把字符串变为数组，将来好循环
			$data[$k]['avalue'] = explode('|', $v['avalue']);
		}
//		后面可能还有数据为防止干扰所以停止掉
		echo json_encode($data);exit;
	}
	
	//uploadify异步上传
	public function upload(){
	    $file = Upload::path('Upload/Content/' . date('y/m'))->make();
	    if (empty($file)) {
	        $this->ajax(Upload::getError());
	    } else {
	        /** $file内部就是以下这个数组
	            $file = array(
	                0 => array(
	                'path' => 'Upload/Content/15/8/123981239172.jpg'    ,
	                'url' => 'http://localhost/cms_edu/Upload/Content/15/8/123981239172.jpg',
	                'image' => 1
	            ),
	        );**/
	        //上传成功，把上传好的信息返给js
	        $data = $file[0];
	        echo json_encode($data);exit;
	    }
	}
	public function del(){
			$sid=Q('get.sid',0,'intval');
			$this->model->where("sid={$sid}")->delete();
			$Shop_attributeModel=new Shop_attribute();
			$Shop_attributeModel->where("shop_id={$sid}")->delete();
			$Shop_detailedModel=new Shop_detailed();
			$Shop_detailedModel->where("shop_sid={$sid}")->delete();
			View::success('删除成功');
	}
//	商品编辑
	public function edit(){		
//		p($_POST);exit;
		//可在模板加隐藏域否则就要获取编辑的数据的id
		$sid=Q('get.sid',0,'intval');
		if(IS_POST){
//			p($_POST);exit;			
			$this->model->where("sid={$sid}")->update();			
			View::success('修改成功',U('index'));
		}
		$oldData=$this->model
				->join('shop_detailed','car_shop.sid','=','car_shop_detailed.shop_sid')
				->where("car_shop.sid={$sid}")
				->find();
//				p($oldData)	;exit;
        View::with('oldData',$oldData);
//        p($oldData);
        //2.处理所属分类
        $cateModel = new Category();
        $cateData = $cateModel->getAll();
//		p($cateData);
        View::with('cateData',$cateData);
//		获取品牌旧数据
		$brandModel=new Brand;
		$brandData=$brandModel->get();
		View::with('brandData',$brandData);
//		旧的品牌数据
		 //3.处理商品属性和规格商品属性和类型属性关联
        $shop_attributeModel = new Shop_attribute();
        $data = $shop_attributeModel
                ->join('attribute', 'car_shop_attribute.attribute_aid','=', 'car_attribute.aid')
                ->where("car_shop_attribute.shop_id={$sid}")
                ->get();
		 $aid = [];
        foreach ($data as $k => $v){
//  	p($v);
            $data[$k]['avalue'] = explode('|',$v['avalue']);
            $aid[] = $v['aid'];
        }
		//把商品没有选过属性也拿取出来
        $attributeModel = new Attribute();
        $aidStr = implode(',',$aid);

		$typeAttr = $attributeModel->where("aid NOT IN ({$aidStr}) AND type_tid={$oldData['type_tid']}")->get();
		 foreach ($typeAttr as $v){
//		 	p($v);
            $data[] = array(
                'shop_attributecol' => '',
                'aname'=>$v['aname'],
                'avalue'=>explode(',',$v['avalue']),
                'is_recycle'=>$v['is_recycle'],
                'aid'=>$v['aid']
            );	
        }
        View::with('data',$data);
		View::make();
	}
	
	
}
